package com.csyf.manager.service;

import com.csyf.manager.entity.SysMerchant;
import com.csyf.manager.entity.SysTradeType;
import com.csyf.manager.exception.ApiValidateException;
import com.csyf.manager.exception.Exception;
import com.csyf.manager.utils.page.JqGridVo;

import java.util.List;
import java.util.Set;

public interface SysMerchBiz {

	/**
	 * 代理商登录调用的方法
	 * @param accountName
	 * @param pwd
	 * @return
	 * @throws java.lang.Exception
	 */
	SysMerchant agentLogin(String accountName, String pwd) throws Exception;

	/**
	 * 根据手机号查询代理商
	 * @param phone
	 * @return
	 */
	SysMerchant queryAgentByPhone(String phone);

	/**
	 * 代理商编号查询
	 * @param merNo
	 * @return
	 */
	SysMerchant queryAgentByMerchantNo(String merNo);


	/**
	 * 修改代理商的密码
	 * @param agentId
	 * @param oldPwd
	 * @param newPwd
	 * @throws Exception
	 */
	void modifyPwd(Long agentId, String oldPwd, String newPwd) throws Exception;

	/**
	 * 停用代理商
	 * @param agentId
	 */
	void stopAgent(Long agentId);


	/**
	 * 重新启用代理商
	 * @param agentId
	 */
	void startAgent(Long agentId);



	SysTradeType queryTradeType(String mch_id, String service);


	List<SysMerchant> queryAll();

	JqGridVo querydata(SysMerchant vo, Integer page, Integer rows);


	void saveAgent(SysMerchant vo) throws ApiValidateException;


	SysMerchant queryAgentById(Long agentId);


	int deleteById(Long agentId);

	/**
	 * 根据代理商id更新代理商信息
	 * @param agentForm
	 * @return
	 */
	int updateByAgentId(SysMerchant agentForm);

	/**
	 * 根据商户id集合批量更新商户状态
	 * @param merchIdsList
	 * @param status
	 * @return
	 */
	int updateStatusBatch(List<String> merchIdsList, Integer status);

	/**
	 * 根据用户id查询代理商id
	 * @param userId
	 * @return
	 */
	SysMerchant queryAgentByUserId(Long userId);

	/**
	 * 根据代理商Id查询商户
	 * @param agentId
	 * @return
	 */
	Set<Integer> findMerchByAgentId(Long agentId);
}
